<#--
    数据模型如下，默认主表、明细表主键字段都是 id,明细表外键字段 parent_id
    {"billClass":"BillFabContract","mainClass":"FabContactMain","detailClass":"FabContactDetail","billRemark":"单据描述"}
-->
<#assign packageModel=projPackage.projPackage + "." + projPackage.entity>
package ${packageModel};

import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
import java.util.List;

/**
 * 版本号：20240401
 * 默认设置：
 * 1. 主表、明细表主键字段为 id，以及相关的 getter,setter 方法
 * 2. 明细表关联到主表的外键字段 parent_id
 * 3. 主表、明细表主键字段MYSQL数据类型是 bigint，java类型是 Long
 * 4. 默认主表单据编号字段 bill_code
 * 5. 项目数据库中保存单据编号规则的表是 bill_code
 * 6. 代码生成器前端需要构建的参数对象：
 * 7. {"billClass":"BillFabContract","mainClass":"FabContactMain","detailClass":"FabContactDetail","billRemark":"单据描述"}
 */
@Data
@Builder
public class ${billInfo.billClass} implements Serializable {
    private static final long serialVersionUID = 1L;
    private ${billInfo.mainClass} main;
    private List<${billInfo.detailClass}> detailList;

    public ${billInfo.mainClass} getMain() {
        return main;
    }

    public void setMain(${billInfo.mainClass} main) {
        this.main = main;
    }

    public List<${billInfo.detailClass}> getDetailList() {
        return detailList;
    }

    public void setDetailList(List<${billInfo.detailClass}> detailList) {
        this.detailList = detailList;
    }

    @Override
    public String toString() {
        return "${billInfo.billClass}{" +
                "main=" + main +
                ", detailList=" + detailList +
                '}';
    }
}
